let fs = require('fs')
const getPackageJson = () => {
  let data = fs.readFileSync('./package.json')
  // 转换为 JSON 对象
  return JSON.parse(data)
}
let packageData = getPackageJson()
const updateVersion = () => {
  let version = packageData.version.split('.')
  let major = parseInt(version[0]) // 主版本号
  let minor = parseInt(version[1]) // 次版本号
  let patch = parseInt(version[2]) // 小版本号

  // 检查并更新版本号
  if (patch < 9) {
    patch++
  } else {
    patch = 0
    if (minor < 9) {
      minor++
    } else {
      minor = 0
      major++
    }
  }

  // 更新版本号
  packageData.version = `${major}.${minor}.${patch}`

  // 获取当前日期和时间
  let now = new Date()
  let formattedDate = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(
    2,
    '0'
  )}-${String(now.getDate()).padStart(2, '0')} ${String(now.getHours()).padStart(
    2,
    '0'
  )}:${String(now.getMinutes()).padStart(2, '0')}:${String(now.getSeconds()).padStart(2, '0')}`

  // 更新最后打包时间
  packageData.lastBuildTime = formattedDate
}

updateVersion()

fs.writeFileSync('./package.json', JSON.stringify(packageData, null, '\t'), err => {
  if (err) {
    console.log('写入版本失败', err)
  } else {
    console.log('写入版本成功 ' + packageData.version)
  }
})
